package com.lkd.shoppingcart.dao;

import java.util.List;

import com.lkd.shoppingcart.entity.Product;

public interface ProductDao {
	
	/**
	 * 添加商品
	 * @param product
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int addProduct(Product product);
	
	/**
	 * 删除商品
	 * @param id
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int deleteProductById(Integer id);
	
	/**
	 * 更新商品
	 * @param product
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int updateProduct(Product product);
	
	/**
	 * 根据商品编号查询商品信息
	 * @param id
	 * @return 返回商品对象
	 */
	public Product queryById(Integer id);
	
	/**
	 * 查询所有商品信息
	 * @return 返回所有商品对象集合
	 */
	public List<Product> queryAll();
	
	/**
	 * 查询商品总数
	 * @return 返回商品总数
	 */
	public Integer queryForTotalCount();
	
	/**
	 * 查询页面商品信息
	 * @param begin 开始索引
	 * @param pageSize 页面最多显示的商品数
	 * @return 返回页面商品对象集合
	 */
	public List<Product> queryForPageItems(int begin, int pageSize);
	
	/**
	 * 根据价格区间查询商品总数
	 * @param min 最低价格
	 * @param max 最高价格
	 * @return 返回指定价格区间的商品总数
	 */
	public Integer queryForTotalCountByPrice(int min, int max);
	
	/**
	 * 根据价格区间查询页面商品信息
	 * @param begin 起始索引
	 * @param pageSize 页面最多显示的商品数
	 * @param min 最低价格
	 * @param max 最高价格
	 * @return 返回指定价格区间的商品对象集合
	 */
	public List<Product> queryForPageItemsByPrice(int begin, int pageSize, int min, int max);

}
